<?php
namespace Amis\dataviewer;

use Amis\Basics\AmisBasics;

/**
 * 卡片展示，不支持配置初始化接口初始化数据域，所以需要搭配类似像Service这样的，
 * 具有配置接口初始化数据域功能的组件，或者手动进行数据域初始化，然后通过source属性，获取数据链中的数据，完成数据展示。
 */
class Cards extends AmisBasics
{
    public string $type = 'cards';

    public function className($className)
    {
        $this->className = $className;
        return $this;
    }

    /**
     * 标题
     * @param $title
     * @return $this
     */
    public function title(string $title)
    {
        $this->title = $title;
        return $this;
    }

    /**
     * 数据源, 获取当前数据域中的变量
     * @param string $source
     * @return $this
     */
    public function source(string $source = '${items}')
    {
        $this->source = $source;
        return $this;
    }

    public function placeholder(string $placeholder = '当没数据的时候的文字提示')
    {
        $this->placeholder = $placeholder;
        return $this;
    }

    /**
     * 顶部外层 CSS 类名
     * @param string $headerClassName
     * @return $this
     */
    public function headerClassName(string $headerClassName = 'amis-grid-header')
    {
        $this->headerClassName = $headerClassName;
        return $this;
    }

    /**
     * 底部外层 CSS 类名
     * @param string $footerClassName
     * @return $this
     */
    public function footerClassName(string $footerClassName = 'amis-grid-footer')
    {
        $this->footerClassName = $footerClassName;
        return $this;
    }

    /**
     * 卡片 CSS 类名
     * @param string $itemClassName
     * @return $this
     */
    public function itemClassName(string $itemClassName = 'col-sm-4 col-md-3')
    {
        $this->itemClassName = $itemClassName;
        return $this;
    }

    /**
     * 配置卡片信息
     * @param \Amis\dataviewer\Card $card
     * @return $this
     */
    public function card(Card $card)
    {
        $this->card = $card;
        return $this;
    }
}